home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Suzy B Software 2
/
Suzy B Software CD-ROM 2 (1994).iso
/
mintprgs
/
mintupgr
/
disk7.zoo
/
elvis.zoo
/
usr
/
doc
/
elvis
/
versions.doc
< prev
next >
Wrap
Text File
|
1992-08-12
|
18KB
|
529 lines
_1_2. _V_E_R_S_I_O_N_S
Elvis currently works under BSD UNIX, AT&T System-V
UNIX, SCO XENIX, Minix, Coherent, MS-DOS, Atari TOS,
OS9/68k, VAX/VMS, and AmigaDos. This section of the manual
provides special information that applies to each particular
version of Elvis.
For all versions except MS-DOS, the file "Makefile.mix"
should be copied to "Makefile", and then edited to select
the correct set of options for your system. There is more
information about this embedded in the file itself.
_1_2._1. _B_S_D _U_N_I_X
Temporary files are stored in /tmp.
You should modify /etc/rc so that the temp files are
preserved when the system is rebooted. Find a line in
/etc/rc which reads
ex4.3preserve /tmp
or something like that, and append the following line
after it:
elvprsv /tmp/elv*
If you do not have permission to modify /etc/rc, don't
fret. The above modification is only needed to allow you to
recover your changes after a system crash. You can still
run Elvis without that modification, and you can still
recover your changes when Elvis crashes or when your dialup
modem looses the carrier signal, or something like that.
Only a system crash or power failure could hurt you.
Both Elvis and the real Vi read initialization commands
from a file called ".exrc", but the commands in that file
might work on one but not the other. For example, "set
keywordprg=man" will work for Elvis, but Vi will complain
because it doesn't have a "keywordprg" option. If the warn-
ing messages annoy you, then you can edit the config.h file
to change the name of the initialization file ".exrc" to
something else, such as ".elvisrc".
If you use X windows, you may wish to add "-DCS_LATIN1"
to CFLAGS. This will cause the digraph table and the flip-
case option to have default values that are appropriate for
the LATIN-1 character set. That's the standard character
set for X.
The default keyboard macro time-out value is larger for
BSD than it is for some other systems, because I've had
trouble running Elvis via rlogin or Xterm. I guess it takes
a while for those keystokes to squirt through the net.
August 10, 1992
12-2 VERSIONS 12-2
_1_2._2. _S_y_s_t_e_m-_V _U_N_I_X
Most SysV UNIX systems use terminfo instead of termcap,
but the terminfo library doesn't seem to have a standard
name. As shipped, Elvis' Makefile.mix is configured with
"LIBS=-lterm". You may need to change it to "LIBS=-
ltermcap" or "LIBS=-lterminfo" or even "LIBS=-lcurses".
The /etc/rc file should be modified as described for
BSD systems, above. The only difference is that SysV sys-
tems tend to have directories for initialization, instead of
a single large /etc/rc file. Editor recovery is usually
done somewhere in the /etc/rc2.d directory.
The potential trouble with ".exrc" described above for
BSD UNIX applies to System-V UNIX as well.
Elvis uses control-C as the interrupt key, not Delete.
_1_2._3. _S_C_O _X_e_n_i_x
For Xenix-386, you can use the generic System-V set-
tings. You may wish to add "-DCS_IBMPC" to CFLAGS, to have
the digraph table and flipcase option start up in a mode
that is appropriate for the console.
There is a separate group of settings for use with Xenix-
286. It already has "-DCS_IBMPC" in CFLAGS.
Because Xenix is so similar to System-V, everything I
said earlier about System-V applies to the Xenix version
too, except that editor recovery probably belongs in a
directory called /etc/rc.d/8.
_1_2._4. _M_i_n_i_x
There are separate settings in Makefile.mix for Minix-
PC and Minix-68k. The differences between these two are
that the 68k version uses ".o" for the object file extension
where the PC version uses ".s", and the PC version has some
extra flags in CFLAGS to reduce the size of Elvis. The PC
version also uses tinytcap (instead of the full termcap) to
make it smaller.
Minix-PC users should read the CFLAGS section of this
manual very carefully. You have some choices to make...
The temporary files are stored in /usr/tmp. The
/usr/tmp directory must exist before you run Elvis, and it
must be readable/writable by everybody. We use /usr/tmp
instead of /tmp because after a system crash or power
failure, you can recover the altered version of a file from
the temporary file in /usr/tmp. If it was stored in /tmp,
though, then it would be lost because /tmp is normally
August 10, 1992
12-3 VERSIONS 12-3
located on the RAM disk.
Elvis uses control-C as the interrupt key, not Delete.
_1_2._5. _C_o_h_e_r_e_n_t
Elvis was ported to Coherent by Esa Ahola.
Elvis is too large to run under Coherent unless you
eliminate some features via the CFLAGS setting. The recom-
mended settings, in Makefile.mix, produce a working version
of Elvis which emulates Vi faithfully, but lacks most of the
extensions. You should read the CFLAGS section of this
manual carefully.
You can probably reduce the size of Elvis by using
tinytcap.c instead of -lterm. This would allow you to keep
most features of Elvis, at the expense of terminal indepen-
dence. (Tinytcap.c has ANSI escape sequences hard-coded
into it.) To use tinytcap, just add "tinytcap.o" to the
"EXTRA=" line in the Makefile, and remove "-lterm" from the
"LIBS=" line.
The temporary files are stored in /tmp. You should
modify your /etc/rc file as described for BSD earlier.
_1_2._6. _M_S-_D_O_S
Elvis was ported to MS-DOS by Guntram Blohm and Martin
Patzel. Willett Kempton added support for the DEC Rainbow.
Ideally, Elvis should be compiled with Microsoft C 5.10
and the standard Microsoft Make utility, via the command
"make elvis.mak". This will compile Elvis and all related
utilities.
With Microsoft C 6.00, you may have trouble compiling
regexp.c. If so, try compiling it without optimization.
The "Makefile.mix" file contains a set of suggested
settings for compiling elvis with Turbo-C or Borland C. (If
you have Turbo-C, but not the Make utility, then you can
_a_l_m_o_s_t use the "Elvis.prj" file to compile Elvis, but you
must explicitly force Turbo-C to compile it with the
"medium" memory model. Most of the related programs [ctags,
ref, virec, refont, and wildcard] are only one file long, so
you should have no trouble compiling them.) The "alias.c"
file is meant to be compiled once into an executable named
"ex.exe". You should then copy "ex.exe" to "vi.exe" and
"view.exe".
Elvis stores its temporary files in C:\tmp. If this is
not satisfactory, then you should edit the CFLAGS line of
your Makefile to change TMPDIR to something else before
August 10, 1992
12-4 VERSIONS 12-4
compiling. You can also control the name of the temp direc-
tory via an environment variable named TMP or TEMP. The
directory must exist before you can run Elvis.
The TERM environment variable determines how elvis will
write to the screen. It can be set to any one of the fol-
lowing values:
pcbios Use BIOS calls on an IBM-PC clone.
rainbow Use DEC Rainbow interface.
ansi Use ANSI.SYS driver.
nansi User faster NANSI.SYS driver.
If the TERM variable isn't set, then elvis will
automatically select either the "rainbow" interface (when
run on a Rainbow) or "pcbios" (on an IBM clone).
You may prefer to use NANSI.SYS for speed; or you may
NEED to use ANSI.SYS for a non-clone, such as a lap-top. If
so, you should install one of these drivers by adding
"driver = nansi.sys" (or whatever) to your CONFIG.SYS file,
and then you should define TERM to be "nansi" (or whatever)
by adding "set TERM=nansi" to your AUTOEXEC.BAT file. You
must then reboot for these changes to take effect. After
that, Elvis will notice the "TERM" setting and use the
driver.
Since ".exrc" is not a valid DOS filename, the name of
the initialization file has been changed to "elvis.rc".
Elvis will look for an "elvis.rc" file first in your home
directory, and then in the current directory. Note that you
must set an environment variable named "HOME" to the full
pathname of your home directory, for Elvis to check there;
if "HOME" isn't set, then Elvis will only look in the
current directory. To set "HOME", you would typically add
the following line to your AUTOEXEC.BAT file:
set HOME c:\
An extra program, called "wildcard", is needed for MS-
DOS. It expands wildcard characters in file names. If
Elvis flashes a "Bad command or filename" message when it
starts, then you've probably lost the WILDCARD.EXE program
somehow.
Elvis can run under Windows, but only in full-screen
mode. Also, Windows uses an environment variable called
TEMP which interferes with elvis' usage of TEMP; to work
around this, you can simply set an environment variable
named TMP (with no 'E') to the name of elvis' temporary
directory. When TEMP and TMP are both set, Elvis uses TMP
and ignored TEMP.
August 10, 1992
12-5 VERSIONS 12-5
_1_2._7. _A_t_a_r_i _T_O_S
Elvis was ported to Atari TOS by Guntram Blohm and Mar-
tin Patzel. It is very similar to the MS-DOS version. It
has been tested with the Mark Williams C compiler and also
GNU-C.
The TERM environment variable is ignored; the ST port
always assumes that TERM=vt52. The SHELL (not COMSPEC!)
variable should be set to the name of a line-oriented shell.
A simple shell in included with Elvis. Its source is
in "shell.c", and the name of the executable is "shell.ttp".
The file "profile.sh" should contain a set of instructions
to be executed when the shell first starts up. An example
of this file is included, but you will almost certainly want
to edit it right away to match your configuration. (If you
already have a command-line shell, then you'll probably want
to continue using it. The shell that comes with Elvis is
very limited.)
Currently, character attributes cannot be displayed on
the screen.
Elvis runs under MiNT (a free multi-tasking extension
to TOS) but it can be a CPU hog because of the way that
Elvis reads from the keyboard with timeout. Also, Elvis
doesn't use any of the special features of MiNT. I have
received a set of patches that optimize Elvis for MiNT, but
they arrived too late to integrate into this release.
_1_2._8. _O_S_9/_6_8_k
Elvis was ported to OS9/68k by Peter Reinig.
The Makefile is currently configured to install Elvis
and the related programs in /dd/usr/cmds If this this is
unacceptable, then you should change the BIN setting to some
other directory. Similarly, it expects the source code to
reside in /dd/usr/src/elvis; the ODIR setting is used to
control this.
Temporary files are stored in the /dd/tmp directory.
Your /dd/startup file may need to be modified to prevent it
from deleting Elvis' temporary files; make /dd/startup run
the _e_l_v_p_r_s_v program before it wipes out /dd/tmp.
The program in alias.c is linked repeatedly to produce
the "vi", "view", and "input" aliases for Elvis. Sadly, the
"ex" alias is impossible to implement under OS9 because the
shell has a built-in command by that name.
For some purposes, you must give `make' the "-b"
option. Specifically, you need this for "make -b clean" and
August 10, 1992
12-6 VERSIONS 12-6
"make -b install".
_1_2._9. _V_A_X/_V_M_S
John Campbell ported Elvis to VAX/VMS.
A heavily laden VAX can take half an hour to compile
elvis. This is normal. Don't panic.
While running, elvis will create temporary files in
SYS$SCRATCH. Enter SHOW LOGICAL SYS$SCRATCH to see what
actual directory you are using. Many sites have SYS$SCRATCH
equivalenced to SYS$LOGIN. The elvis temporary files look
like the following on VMS while elvis is running:
ELV_1123A.1;1 ELV_1123A.2;1 SO070202.;1
Also, filtering commands (like !!dir and !}fmt) should
work on VMS. This assumes, however, that you can create
temporary mailboxes and that your mailbox quota (a sysgen
parameter) is at least 256 bytes for a single write to the
mailbox. This is the default sysgen parameter, so there
should be few people who experience filter problems.
Additionally, an attempt was made to support the stan-
dard terminals on VMS: "vt52", "vt100", "vt200", "vt300",
"vt101", "vt102". Non-standard terminals could be supported
by setting your terminal type to UNKNOWN (by entering SET
TERM/UNKNOWN) and defining the logical name ELVIS_TERM.
Whatever ELVIS_TERM translates to, however, will have to be
included in tinytcap.c. Note that the upper/lowercase dis-
tinctions are significant, and that DCL will upshift charac-
ters that are not quoted strings, so enter DEFINE ELVIS_TERM
"hp2621a". As distributed, it would probably not be a good
idea to have more than the standard terminals in tinytcap.c
(else it wouldn't be tiny, would it?). Changes here, of
course, would require a recompilation to take effect.
If you have a version of the "termcap" library and
database on your system, then you may wish to replace
tinytcap with the real termcap.
_1_2._1_0. _A_m_i_g_a_D_O_S
Mike Rieser and Dale Rahn ported Elvis to AmigaDOS.
The port was done using Manx Aztec C version 5.2b.
Elvis uses about as much space as it can and still be small
code and data. Elvis should also compile under DICE, though
there may be a little trouble with signed versus unsigned
chars.
The port has been done so the same binary will run
under both versions of AmigaDOS. Under AmigaDOS 2.04, Elvis
supports all the documented features. It also uses an
August 10, 1992
12-7 VERSIONS 12-7
external program ref to do tag lookup. So, the accompanying
programs: ref and ctags are recommended. Under AmigaDOS
1.2/1.3 Elvis works, buts lacks the more advanced features.
For the port to AmigaDOS 2.04, we tried to use as many
Native AmigaDOS calls as we could. This should increase
Elvis's chances at being compiled with other compilers.
DICE seems to have a different default char type. You may
need to use the UCHAR() macro in tio.c. To test it, try the
:map command; if it looks right, things are cool.
For the port to AmigaDOS 1.3, we tried to make sure the
program was at least usable. Many features are missing,
most notably running commands in subshells. Also, what we
could get working, we used Aztec functions to support them,
so this part is little more compiler dependent.
Aztec is compatible with the SAS libcall #pragma. I
personally prefer using the includes that come from Commo-
dore over the ones supplied with Aztec, but for people with
a straight Aztec installation, I went with the default names
for the Aztec pragmas.
One include you'll need is <sys/types.h>. Its a common
include when porting software just make yourself one. Its a
two line file that saves a lot of hassle especially in the
elvis source. So, make a directory where your includes are
located called `sys' and in a file below that type:
/* sys/types.h */
#include <exec/types.h>
When setting environment variables (either local or
global) for variables that specify a directory, make sure
the variable ends in `:' or `/'. This saved from having to
change much of the way elvis works. The default temporary
directory (if TEMP and TMP aren't specified) is "T:". The
default if HOME directory (if no HOME environment variable
is set) is "S:".
To avoid conlict with other uses, Elvis uses elvis.rc
instead of .exrc or where it looks for macros.
_1_2._1_1. _O_t_h_e_r _S_y_s_t_e_m_s
For Sun workstations, use the BSD configuration. Ear-
lier versions of elvis didn't link correctly due to a quirk
in Sun's version of the "make" utility, but this version of
elvis has a work-around for that quirk so you should have no
trouble at all.
For Linux, use the SysV settings. You can probably
just remove the "-lterm" from the "LIBS= -lterm" line, since
linux keeps the termcap functions in the standard C library.
August 10, 1992
12-8 VERSIONS 12-8
For other UNIXoid systems, I suggest you start with the
Minix-68k settings and then grow from that. Minix is a nice
starting point because it is a clone of Version 7 UNIX,
which was the last common ancestor of BSD UNIX and SysV
UNIX. Any Operating System which claims any UNIX compati-
bility what so ever will therefore support V7/Minix code.
You may need to fiddle with #include directives or some-
thing, though. Minix-68k is a better starting point than
Minix-PC because the PC compiler has some severe quirks.
August 10, 1992